package com.demo.java.OD51_100.OD89;

import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;
import java.util.stream.Collectors;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【数组组成的最小数字】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/
 */
public class OdMain {
    public static String solve(String[] strs) {
        Integer MAX = 3; // 最多选择三个元素
        // 将输入的字符串转换为数字并排序
        List<Integer> myDataList = Arrays.stream(strs)
                .map(Integer::parseInt)
                .sorted()
                .collect(Collectors.toList());

        // 保留最多 3 个元素
        Integer endIdx = Math.min(MAX, myDataList.size());
        myDataList = myDataList.subList(0, endIdx);

        // 自定义排序规则：根据数字拼接后的大小进行排序
        Comparator<Integer> cpt = (l, r) -> {
            String leftRight = l.toString() + r.toString();
            String rightLeft = r.toString() + l.toString();
            return leftRight.compareTo(rightLeft); // 比较拼接后的字符串
        };

        // 按照拼接规则排序后输出
        return myDataList.stream()
                .sorted(cpt)
                .map(String::valueOf)
                .collect(Collectors.joining(""));
    }

    public static void main(String[] args) {
        try {
            Scanner s = new Scanner(System.in);
            String[] strs = s.nextLine().split(","); // 输入为逗号分隔的字符串
            System.out.println(solve(strs)); // 输出结果
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("false"); // 异常时输出 false
        }
    }
}